A stepper motor positioning system for pan/tilt/zoom (PTZ) surveillance cameras has several stringent desired characteristics. First, such a system should have very accurate positioning when coming to a stop, with no position feedback, i.e., static positioning accuracy. Second, the system should have very smooth motion at low speed, namely, low variation of angular velocity, when moving in unstable mechanical systems. A typical stepper motor and motor load have multiple frequencies of high-Q resonances which are energized at specific angular velocities. Third, the system should be capable of implementing high speed positive/negative acceleration profiles to change position quickly. Fourth, the system should be very power efficient, as security domes of PTZ cameras have limited power available and limited means for dissipating thermal energy generated in the motor and the motor drive.
Referring to FIG. 7, a typical PTZ stepper motor driver 100 is a motor winding current-controlled driver. The current-controlled motor driver 100 contains digital pulse-width modulation (PWM) modules 102, 104 and H-Bridges 106, 108 to force current into motor windings 110, 112, shunt resistors 114, 116 in series with each motor winding to measure the winding current, and comparators 118, 120 that feed back the winding currents to the modules 102, 104 to vary duty cycle of the PWM modules 102, 104 to achieve desired instantaneous currents in the motor windings 110, 112. The comparators 118, 120 compare reference/control signals with the voltage generated across the shunt resistors 114, 116. The driver 100 controls the instantaneous peak current, but not the average current. Thus, when the voltage across the resistor 114, 116 crosses the reference voltage, the PWM signal switches. This causes the current to ramp up and down in a sawtooth pattern, the levels of which depend on component values and characteristics such as parasitics. The H-bridges 106, 108 can be adjusted to help reduce the swing of this sawtooth pattern, but the swing leads to position inaccuracies, and vibration and noise in the motor driven by the driver 100.
With the typical stepper motor driver, the value in Ohms of the winding current shunt resistor has competing interests. Increasing the value of the current shunt resistor yields an increase in signal/noise ratio, which provides a more accurate measurement of the winding current, resulting in an increase in the static positioning accuracy of the motor driver. Reducing the value of the current shunt resistor, however, increases the efficiency of the motor driver by reducing power loss and dissipation due to the large motor currents passing through the shunt resistor. Therefore, optimizing both efficiency and static positioning accuracy is difficult, if not impossible.
In addition, it is not practical to measure the winding current with a current shunt when both motor windings are switching from rail to rail due to the PWM generator output. Therefore, in a typical unipolar current-controlled driver the current shunt is placed in the unipolar power supply return line. At each zero crossing of the current the driver switches winding current polarity. This causes a large output error around each cardinal step (movement caused by an increment in winding driving waveforms, e.g., with four cardinal steps in a full cycle of quadrature driving waveforms) where one of the winding currents crosses zero, resulting in a larger-than-normal static positioning error. This also reduces smoothness of motion for low angular velocity as there is an error bump in the torque of the driver at each cardinal step.
Still further, the resistance in the motor winding is decoupled from the energy at the mechanical system resonances, thus providing little or no damping of the high-Q resonances. This driver is prone to uncontrolled oscillations due to undamped high-Q mechanical resonances. Typically, with current-controlled drivers the designer uses modeling and/or trial and error with built devices to determine motor velocities that induce system resonances. The designer uses the determined resonances to implement safeguards to help ensure that the system does not dwell at those velocities. The designer can implement “no-go” velocity bands around the velocities that induce system resonances, e.g., by having controlling software and/or firmware keep the velocity outside of these bands (e.g., just above or below the band) when feasible and when not feasible, to transit the bands quickly enough to avoid oscillation.
Moreover, the current-controlled driver applies large PWM voltages to the motor windings, which cause eddy currents to flow in the motor metal structures, increasing power loss and generating heat in the motor components.
Current-controlled drivers have been favored, and voltage-controlled drivers dismissed, because stepper motor position is dictated by winding current. Thus, driving with a current ensures motor position while driving with voltage could lead to unknown current and thus unknown motor position.